package io.renren.modules.pms.service.impl;

import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import io.renren.modules.pms.dao.PmsProductBrandDao;
import io.renren.modules.pms.entity.PmsProductBrandEntity;
import io.renren.modules.pms.entity.PmsProductCategoryEntity;
import io.renren.modules.pms.service.PmsProductBrandService;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.renren.common.utils.PageUtils;
import io.renren.common.utils.Query;
import org.springframework.util.StringUtils;

@Service("PmsProductBrandService")
public class PmsProductBrandServiceImpl extends ServiceImpl<PmsProductBrandDao, PmsProductBrandEntity> implements PmsProductBrandService {

    /**
     * 根据品牌名称分页获取品牌列表
     */
    @Override
    public PageUtils queryPage(Map<String, Object> params) {

        String keyword = (String) params.getOrDefault("keyword",null);
        if (!StringUtils.isEmpty(keyword)) {
            IPage<PmsProductBrandEntity> page = this.page(
                    new Query<PmsProductBrandEntity>().getPage(params),
                    new QueryWrapper<PmsProductBrandEntity>()
                            .lambda()
                            .like(PmsProductBrandEntity::getName,keyword)
                            .orderByAsc(PmsProductBrandEntity::getSort)
            );
            return new PageUtils(page);
        } else {
            IPage<PmsProductBrandEntity> page = this.page(
                    new Query<PmsProductBrandEntity>().getPage(params),
                    new QueryWrapper<PmsProductBrandEntity>()
                            .lambda()
                            .orderByAsc(PmsProductBrandEntity::getSort)
            );
            return new PageUtils(page);
        }
    }

    /**
     * 是否品牌制造商
     */
    @Override
    public boolean updateFactoryStatusById(long id, Integer factoryStatus) {
        UpdateWrapper<PmsProductBrandEntity> updateWrapper = new UpdateWrapper<>();
        updateWrapper.lambda()
                .set(PmsProductBrandEntity::getFactoryStatus,factoryStatus)
                .eq(PmsProductBrandEntity::getId,id);
        return this.update(updateWrapper);
    }

    /**
     * 修改显示状态
     */
    @Override
    public boolean updateShowStatusById(Long id, Integer showStatus) {
        UpdateWrapper<PmsProductBrandEntity> updateWrapper = new UpdateWrapper<>();
        updateWrapper.lambda()
                .set(PmsProductBrandEntity::getShowStatus,showStatus)
                .eq(PmsProductBrandEntity::getId,id);
        return this.update(updateWrapper);
    }

}
